#!/usr/bin/env bash

#
# cli-test: Tests for forever CLI
#
# (C) 2012 Charlie Robbins & the Contributors
# MIT LICENSE
#

# Yes, we have tests in bash. How mad science is that?

alias forever=bin/forever
script="test/fixtures/log-on-interval.js"

function fail {
  echo "\033[31m  ✘ $1\033[0m"
  exit 1
}

function success {
  echo "\033[32m  ✔ $1\033[0m"
}

function spec {
  [ $? -eq 0 ] || fail "$1"
  success "$1"
}

echo "\033[1mRunning tests:\033[0m"

# First kill all processes and remove forever directory to ensure clean
# environment
forever stopall
rm -rf ~/.forever

# Spawn some process
forever start "$script"

# Assert that forever actually spawned a process and that it's in `forever list`
sleep 1 # it takes some time until process appears in `forever list`
forever list | grep "$script"
spec "\`forever list\` should contain spawned process"

# `forever stop` should output process it stopped...
forever stop 0 | grep "$script"
spec "\`forever stop 0\` should contain stopped process"

# ... and actually stop it
forever list | grep -v "$script"
spec "\`forever stop 0\` should actually stop the process"

